Combining Processor Virtualization and Component-Based Engineering in C for Heterogeneous Many-Core Platforms
نویسندگان
چکیده
Embedded system design is driven by strong efficiency constraints in terms of performance, silicon area and power consumption, as well as pressure on the cost and time-to-market. As of today, this forms three tough problems: 1) many-core systems are becoming mainstream, however there is still no decent approach for distributing software applications on those platforms; 2) these systems still integrate heterogeneous processors for efficiency reasons, thus programming them requires complex compilation environments; 3) hardware resources are precious and low-level languages are still a must to exploit them subtly. These factors have negative impact on the programmability of many-core platforms and limit our ability to address the challenges of the next decade. This paper devises a new programming approach leveraging processor virtualization and component-based software engineering technologies to address these issues all together. It presents a programming model based on C for developing fine grain component-based applications, and a toolset that compiles them into a processorindependent bytecode representation that can be deployed on heterogeneous platforms. We also discuss the effectiveness of this approach and present some ideas that might have a key role in addressing the above challenges. Key-words: virtualization, bytecode, just-in-time compilation, multicore, many-core, software engineering, software components This work was mostly done while the authors were at STMicroelectronics. ∗ INRIA Rennes † STMicroelectronics ‡ ST-Ericsson in ria -0 03 97 82 3, v er si on 1 23 J un 2 00 9 Combinaison des techniques de virtualisation et de programmation à base de composants en C pour les plates-formes multicœur hétérogènes Résumé : La conception de systèmes embarqués est soumise à de fortes contraintes en termes de performance, surface de silicium, consommation électrique, ainsi que la nécessité de maintenir les coûts bas et de réduire le temps de mise sur le marché. Aujourd’hui, ces contraintes se concrétisent sous la forme de trois problèmes essentiels : 1) les plates-formes à base de processeurs multicœur deviennent courantes, bien qu’il n’existe toujours aucune approche satisfaisante pour y distribuer les applications logicielles; 2) ces plates-formes continuent d’intégrer des processeurs hétérogènes pour des raisons d’efficacité, ce qui rend leurs environnements de programmation encore plus compliqués; 3) enfin, les ressources matérielles étant extrêmement précieuses en raison des contraintes sus-citées, l’utilisation des langages de programmation de bas niveau s’impose pour assurer leur exploitation fine. Ces facteurs ont un impact négatif sur la programmabilité des plates-formes multicœur, et constituent un obstacle majeur menaçant notre capacité à nous attaquer aux défis de la prochaine décennie. Ce rapport présente un élément de réponse pour aborder ces problèmes. Notre proposition se présente sous la forme d’une nouvelle approche de la programmation s’appuyant sur des techniques de virtualisation de processeur et de génie logiciel à base de composants. Nous présentons un modèle de programmation basé sur le langage C qui permet la construction d’applications à partir de composants à grain fin. Ce modèle de programmation est supporté par une chaı̂ne d’outils qui compile les composants logiciels vers une représentation bytecode indépendante du processeur cible, ce qui les rend susceptibles d’être déployés sur des plates-formes multicœur hétérogènes. Nous discutons l’efficacité de notre approche et nous présentons plusieurs perspectives de recherche qui pourraient avoir des rôles clés dans la résolution des problèmes sus-cités. Mots-clés : virtualisation, bytecode, compilation à la volée, multicœur, génie logiciel, composants logiciels in ria -0 03 97 82 3, v er si on 1 23 J un 2 00 9
منابع مشابه
Combining Processor Virtualization and Component-Based Engineering in C for Many-Core Heterogeneous Embedded MPSoCs
The design of embedded systems is driven by strong constraints in terms of performance, silicon area and power consumption, as well as pressure on the cost and time-to-market. This has three consequences: 1) many-core systems are becoming mainstream, but there is still no satisfactory approach for distributing software applications on these platforms; 2) these systems integrate heterogeneous pr...
متن کاملCombining Processor Virtualization and Split Compilation for Heterogeneous Multicore Embedded Systems
Complex embedded systems have always been heterogeneous multicore systems. Because of the tight constraints on power, performance and cost, this situation is not likely to change any time soon. As a result, the software environments required to program those systems have become very complex too. We propose to apply instruction set virtualization and just-in-time compilation techniques to progra...
متن کاملVirtualizing Heterogeneous Many-core Platforms
Introduction. The relentless progress of Moore’s Law has periodically inspired major innovations – both in hardware and software – at specific points in time to keep performance growth on pace with transistor density. Industry has reached another such point as it encounters intellectual and engineering challenges in the form of power dissipation, processor-memory performance gap, limits to inst...
متن کاملEfficient parallelization of the genetic algorithm solution of traveling salesman problem on multi-core and many-core systems
Efficient parallelization of genetic algorithms (GAs) on state-of-the-art multi-threading or many-threading platforms is a challenge due to the difficulty of schedulation of hardware resources regarding the concurrency of threads. In this paper, for resolving the problem, a novel method is proposed, which parallelizes the GA by designing three concurrent kernels, each of which running some depe...
متن کاملUltra-Low-Energy DSP Processor Design for Many-Core Parallel Applications
Background and Objectives: Digital signal processors are widely used in energy constrained applications in which battery lifetime is a critical concern. Accordingly, designing ultra-low-energy processors is a major concern. In this work and in the first step, we propose a sub-threshold DSP processor. Methods: As our baseline architecture, we use a modified version of an existing ultra-low-power...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009